home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Almathera Ten Pack 3: CDPD 3
/
Almathera Ten on Ten - Disc 3: CDPD3.iso
/
scope
/
076-100
/
scopedisk80
/
mt
/
addaddr.c
< prev
next >
Wrap
C/C++ Source or Header
|
1995-03-19
|
1KB
|
53 lines
void
AddAddr(address)
unsigned char *address;
{
extern unsigned char *Addr[];
extern short int AddrCnt;
int i;
/* If it's the first address we just add it. */
if (AddrCnt == 0)
Addr[AddrCnt++] = address;
else
{
/* If there are already 100 addresses we can't process any more so
we'll just return. */
if (AddrCnt == 100)
return;
/* We'll compare the new address against each one in the list until we
find the appropriate place to insert it. */
for (i = 0; i < AddrCnt; i++)
{
/* If the new address is smaller than the current address in the
array we'll insert the new one at this position. */
if (address < Addr[i])
{
/* We need a temporary loop counter so we can move all the array
entries from the current one to the end down one position to
make room for the new address. */
int j;
for (j = AddrCnt; j > i; j--)
Addr[j] = Addr[j-1];
Addr[i] = address;
AddrCnt++;
break;
}
/* If the address is already in the list we'll skip it. */
if (address == Addr[i])
break;
}
/* If the new address is higher than the last one on the list we'll
add it to the end of the array. */
if (address > Addr[AddrCnt-1])
Addr[AddrCnt++] = address;
return;
}
}